package com.zx.mes.hyl.auth.service;



import com.zx.mes.hyl.auth.pagemodel.User;
import com.zx.mes.hyl.auth.pagemodel.UserInfo;
import com.zx.mes.hyl.common.pagemodel.LayPageHelper;

import java.util.List;

/**
 * @author hyl
 * @date 2017-12-17
 */
public interface UserServiceI {

    UserInfo login(String username, String password);

    /**
     * 用户注册
     *
     * @param user
     *            里面包含登录名和密码
     * @throws Exception
     */
    void reg(User user) throws Exception;

    /**
     * 根据传过来的条件来找到所有的用户
     * @param user
     * @param ph
     * @return list
     */
    List<User> findAll(User user, LayPageHelper ph);

    /**
     * 有多少user
     * @return
     */
    long count(User user);


    /**
     * 添加用户
     *
     * @param user
     */
    void add(User user) throws Exception;

    /**
     * 获得用户对象
     *
     * @param id
     * @return
     */
    User get(String id);

    /**
     * 获得用户对象
     *
     * @param name
     * @return
     */
    User getByUserName(String name);

    /**
     * 编辑用户
     *
     * @param user
     */
    void edit(User user) throws Exception;

    /**
     * 删除用户
     *
     * @param id
     */
    void delete(String id);

    /**
     * 用户授权
     *
     * @param ids
     * @param user
     *            需要user.roleIds的属性值
     */
    void grant(String ids, User user);

    /**
     * 获得用户能访问的资源地址
     *
     * @param id
     *            用户ID
     * @return
     */
    List<String> resourceList(String id);

    /**
     * 获得用户能访问的菜单
     * @param id
     * @return
     */
    List<String> menuList(String id);



}
